#!/bin/sh

#=========================== EDIT THE FOLLOWING VARIABLES ==========================
#  _________________________________________________________________________________
# |                                                                                 |
# | Interface name to use for the TAP device					    |
# |                                                                                 |
    TAP_IF="tap0"
# |_________________________________________________________________________________|
# |                                                                                 |
# | IP Address/Subnet in CIDR Notation for the Virtual Network			    |
# |                                                                                 |
    TAP_NET="10.10.10.1/24" 
# |_________________________________________________________________________________|
#
#=========================== DO NOT EDIT BELOW THIS LINE ============================

start(){
   echo -n "Starting VDE Switch..."

   # Load tun module
   modprobe tun || { echo "Error, cannot load 'tun' module. Exiting..." ; exit 1 ; } 
   sleep 1

   # Start tap switch
   vde_switch -tap ${TAP_IF} -daemon || { echo "Error, cannot assign IP to ${TAP_IF}. Exiting..." ; exit 1 ; }

   # Bring tap interface up
   ip addr add ${TAP_NET} dev ${TAP_IF} 
   ip link set ${TAP_IF} up
   
   #chmod 666 /tmp/vde.ctl
   chmod -R a+rwx /var/run/vde.ctl

   # Apply workaround
   echo 1024 > /proc/sys/dev/rtc/max-user-freq
   echo
}


stop(){
   echo -n "Stopping VDE Switch..."

      # Bring tap interface down
      ip addr flush dev ${TAP_IF}
      ip link set ${TAP_IF} down

      # Kill VDE switch
      kill $(pgrep vde_switch)
      sleep 1

      # Remove tun module
      modprobe -r tun
      echo
}


case "$1" in
   start)
	   start
	   ;;

   stop)
	   stop
	   ;;

   restart)
	   stop
	   start
	   ;;
   *)
	   echo "Usage: $0 {start|stop|restart}"
	   ;;
esac
